/*
 * @lc app=leetcode.cn id=118 lang=javascript
 *
 * [118] 杨辉三角
 */

// @lc code=start
/**
 * @param {number} numRows
 * @return {number[][]}
 */
var generate = function (numRows) {
  const ret = [];
  for (let i = 0; i < numRows; i++) {
    // 生成每行的存储用数组，默认填充 1，就解决了头部和尾部 1 的问题
    const row = new Array(i + 1).fill(1);
    // j = 1 & j < row.length - 1 保证了只计算中间的部分
    for (let j = 1; j < row.length - 1; j++) {
      // [i - 1][j - 1] & [i - 1][j] 取到了上一行左右两个犄角节点值
      row[j] = ret[i - 1][j - 1] + ret[i - 1][j];
    }
    ret.push(row);
  }
  return ret;
};
// @lc code=end
